package com.hospital.hospitalserver.entity;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 提交保存就诊记录实体类
 * */
@Data
public class DiagnosisRecordDTO {
    // ========== 就诊记录基础信息 ==========
    private Integer diagnosis_id;
    private Integer visit_id;
    private String record_no;
    private String appointment_id;
    private Integer patient_id; //患者档案ID
    private String patient_gender; //性别
    private String insurance_card_number;
    private String patient_name;
    private String id_number;
    private String phone_number;
    private LocalDateTime registration_time;
    private BigDecimal registration_fee;
    private String visit_type;
    private String visit_status;
    private Integer department_id;
    private String department_name;
    private Integer doctor_id;
    private String doctor_name;
    private Integer schedule_instance_id;

    // ========== 诊断记录核心字段 ==========
    private String chief_complaint; //主诉
    private String present_illness; //现病史
    private String past_history; //既往史
    private String allergy_history; //过敏史
    private String physical_exam; //体格检查
    // 诊断信息
    private String preliminary_diagnosis; //初步诊断
    private String current_diagnosis; //最终诊断
    private String disease_code; //疾病编码
    // 治疗信息
    private String treatment_plan; //治疗方案
    private String lab_results; //辅助检查结果

    // ========== AI辅助诊断字段 ==========
    private String ai_symptom_analysis; //AI症状分析
    private String ai_physical_exam_suggest; //AI体格检查建议
    private String ai_lab_suggest; //AI检查项目推荐
    private String ai_diagnosis_suggest; //AI诊断建议
    private String ai_treatment_suggest; //AI治疗建议
    private String ai_quick_analysis; //AI一键分析结果

    // ========== 状态和时间字段 ==========
    private String diagnosis_status;
    private LocalDateTime diagnosis_time;
    private LocalDateTime visit_time;
    private LocalDateTime complete_time;

    // ========== 费用相关字段 ==========
    private BigDecimal reimbursement_rate;
    private BigDecimal insurance_payment;
    private BigDecimal personal_payment;

    // ========== 系统字段 ==========
    private LocalDateTime create_time;
    private LocalDateTime update_time;

    // ========== 扩展字段（用于前端传递） ==========
//    private String recordNo; // 诊断记录编号（后端生成）
//    private Integer patientAge; // 计算出的年龄
//    private String patientGender; // 计算出的性别
}
